[INFO] fetching crate cplex_dynamic 0.1.1...
[INFO] checking cplex_dynamic-0.1.1 against master#9610dfe5a9a731ced1ea4923ecbd0c57fe367898 for beta-170-4
[INFO] extracting crate cplex_dynamic 0.1.1 into /workspace/builds/worker-5-tc1/source
[INFO] validating manifest of crates.io crate cplex_dynamic 0.1.1 on toolchain 9610dfe5a9a731ced1ea4923ecbd0c57fe367898
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+9610dfe5a9a731ced1ea4923ecbd0c57fe367898" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking crates.io crate cplex_dynamic 0.1.1
[INFO] finished tweaking crates.io crate cplex_dynamic 0.1.1
[INFO] tweaked toml for crates.io crate cplex_dynamic 0.1.1 written to /workspace/builds/worker-5-tc1/source/Cargo.toml
[INFO] crate crates.io crate cplex_dynamic 0.1.1 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+9610dfe5a9a731ced1ea4923ecbd0c57fe367898" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded dlopen_derive v0.1.4
[INFO] [stderr]   Downloaded dlopen v0.1.8
[INFO] [stderr]   Downloaded const-cstr v0.3.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:19e73879b68f455e41552ea35293514db52ea292d993f571636dbffedb77a1ee" "/opt/rustwide/cargo-home/bin/cargo" "+9610dfe5a9a731ced1ea4923ecbd0c57fe367898" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] a3a355ab0a5bb9548e715d186e84b98c60e76be7576516cdea090c4ab74967f9
[INFO] running `Command { std: "docker" "start" "-a" "a3a355ab0a5bb9548e715d186e84b98c60e76be7576516cdea090c4ab74967f9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "a3a355ab0a5bb9548e715d186e84b98c60e76be7576516cdea090c4ab74967f9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a3a355ab0a5bb9548e715d186e84b98c60e76be7576516cdea090c4ab74967f9", kill_on_drop: false }`
[INFO] [stdout] a3a355ab0a5bb9548e715d186e84b98c60e76be7576516cdea090c4ab74967f9
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:19e73879b68f455e41552ea35293514db52ea292d993f571636dbffedb77a1ee" "/opt/rustwide/cargo-home/bin/cargo" "+9610dfe5a9a731ced1ea4923ecbd0c57fe367898" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] cd893d4c4bb18595026a8181b90f24f9917346da75b3f9e2d3ddc68f1236d28a
[INFO] running `Command { std: "docker" "start" "-a" "cd893d4c4bb18595026a8181b90f24f9917346da75b3f9e2d3ddc68f1236d28a", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v0.4.30
[INFO] [stderr]    Compiling libc v0.2.134
[INFO] [stderr]    Compiling unicode-xid v0.1.0
[INFO] [stderr]     Checking const-cstr v0.3.0
[INFO] [stderr]     Checking glob v0.3.0
[INFO] [stderr]    Compiling quote v0.6.13
[INFO] [stderr]    Compiling syn v0.15.44
[INFO] [stderr]    Compiling dlopen_derive v0.1.4
[INFO] [stderr]     Checking dlopen v0.1.8
[INFO] [stderr]     Checking cplex_dynamic v0.1.1 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/load.rs:183:5
[INFO] [stdout]     |
[INFO] [stdout] 183 |     unsafe {
[INFO] [stdout]     |     ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_unsafe)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/load.rs:248:9
[INFO] [stdout]     |
[INFO] [stdout] 248 |         unsafe {
[INFO] [stdout]     |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/load.rs:278:9
[INFO] [stdout]     |
[INFO] [stdout] 278 |         unsafe {
[INFO] [stdout]     |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/load.rs:299:9
[INFO] [stdout]     |
[INFO] [stdout] 299 |         unsafe {
[INFO] [stdout]     |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/load.rs:183:5
[INFO] [stdout]     |
[INFO] [stdout] 183 |     unsafe {
[INFO] [stdout]     |     ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_unsafe)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/load.rs:248:9
[INFO] [stdout]     |
[INFO] [stdout] 248 |         unsafe {
[INFO] [stdout]     |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/load.rs:278:9
[INFO] [stdout]     |
[INFO] [stdout] 278 |         unsafe {
[INFO] [stdout]     |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/load.rs:299:9
[INFO] [stdout]     |
[INFO] [stdout] 299 |         unsafe {
[INFO] [stdout]     |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `index` is never read
[INFO] [stdout]    --> src/load.rs:464:5
[INFO] [stdout]     |
[INFO] [stdout] 463 | pub struct Constraint {
[INFO] [stdout]     |            ---------- field in this struct
[INFO] [stdout] 464 |     index: Option<usize>,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Constraint` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]     = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `index` is never read
[INFO] [stdout]    --> src/load.rs:464:5
[INFO] [stdout]     |
[INFO] [stdout] 463 | pub struct Constraint {
[INFO] [stdout]     |            ---------- field in this struct
[INFO] [stdout] 464 |     index: Option<usize>,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Constraint` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]     = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXopenCPLEX` should have a snake case name
[INFO] [stdout]   --> src/load.rs:60:5
[INFO] [stdout]    |
[INFO] [stdout] 60 |     CPXopenCPLEX: fn(status: *mut c_int) -> *mut CEnv,
[INFO] [stdout]    |     ^^^^^^^^^^^^ help: convert the identifier to snake case: `cpxopen_cplex`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXcreateprob` should have a snake case name
[INFO] [stdout]   --> src/load.rs:61:5
[INFO] [stdout]    |
[INFO] [stdout] 61 |     CPXcreateprob: fn(env: *mut CEnv, status: *mut c_int, name: *const c_char) -> *mut CProblem,
[INFO] [stdout]    |     ^^^^^^^^^^^^^ help: convert the identifier to snake case: `cpxcreateprob`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXsetintparam` should have a snake case name
[INFO] [stdout]   --> src/load.rs:62:5
[INFO] [stdout]    |
[INFO] [stdout] 62 |     CPXsetintparam: fn(env: *mut CEnv, param: c_int, value: c_int) -> c_int,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `cpxsetintparam`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXsetdblparam` should have a snake case name
[INFO] [stdout]   --> src/load.rs:63:5
[INFO] [stdout]    |
[INFO] [stdout] 63 |     CPXsetdblparam: fn(env: *mut CEnv, param: c_int, value: c_double) -> c_int,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `cpxsetdblparam`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXgetintparam` should have a snake case name
[INFO] [stdout]   --> src/load.rs:64:5
[INFO] [stdout]    |
[INFO] [stdout] 64 |     CPXgetintparam: fn(env: *mut CEnv, param: c_int, value: *mut c_int) -> c_int,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `cpxgetintparam`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXgetdblparam` should have a snake case name
[INFO] [stdout]   --> src/load.rs:65:5
[INFO] [stdout]    |
[INFO] [stdout] 65 |     CPXgetdblparam: fn(env: *mut CEnv, param: c_int, value: *mut c_double) -> c_int,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `cpxgetdblparam`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXchgprobtype` should have a snake case name
[INFO] [stdout]   --> src/load.rs:66:5
[INFO] [stdout]    |
[INFO] [stdout] 66 |     CPXchgprobtype: fn(env: *mut CEnv, lp: *mut CProblem, ptype: c_int) -> c_int,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `cpxchgprobtype`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXnewcols` should have a snake case name
[INFO] [stdout]   --> src/load.rs:68:5
[INFO] [stdout]    |
[INFO] [stdout] 68 |     CPXnewcols: fn(
[INFO] [stdout]    |     ^^^^^^^^^^ help: convert the identifier to snake case: `cpxnewcols`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXopenCPLEX` should have a snake case name
[INFO] [stdout]   --> src/load.rs:60:5
[INFO] [stdout]    |
[INFO] [stdout] 60 |     CPXopenCPLEX: fn(status: *mut c_int) -> *mut CEnv,
[INFO] [stdout]    |     ^^^^^^^^^^^^ help: convert the identifier to snake case: `cpxopen_cplex`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXaddrows` should have a snake case name
[INFO] [stdout]   --> src/load.rs:78:5
[INFO] [stdout]    |
[INFO] [stdout] 78 |     CPXaddrows: fn(
[INFO] [stdout]    |     ^^^^^^^^^^ help: convert the identifier to snake case: `cpxaddrows`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXaddcols` should have a snake case name
[INFO] [stdout]   --> src/load.rs:92:5
[INFO] [stdout]    |
[INFO] [stdout] 92 |     CPXaddcols: fn(
[INFO] [stdout]    |     ^^^^^^^^^^ help: convert the identifier to snake case: `cpxaddcols`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXcreateprob` should have a snake case name
[INFO] [stdout]   --> src/load.rs:61:5
[INFO] [stdout]    |
[INFO] [stdout] 61 |     CPXcreateprob: fn(env: *mut CEnv, status: *mut c_int, name: *const c_char) -> *mut CProblem,
[INFO] [stdout]    |     ^^^^^^^^^^^^^ help: convert the identifier to snake case: `cpxcreateprob`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXaddlazyconstraints` should have a snake case name
[INFO] [stdout]    --> src/load.rs:105:5
[INFO] [stdout]     |
[INFO] [stdout] 105 |     CPXaddlazyconstraints: fn(
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `cpxaddlazyconstraints`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXsetintparam` should have a snake case name
[INFO] [stdout]   --> src/load.rs:62:5
[INFO] [stdout]    |
[INFO] [stdout] 62 |     CPXsetintparam: fn(env: *mut CEnv, param: c_int, value: c_int) -> c_int,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `cpxsetintparam`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXgetnumcols` should have a snake case name
[INFO] [stdout]    --> src/load.rs:118:5
[INFO] [stdout]     |
[INFO] [stdout] 118 |     CPXgetnumcols: fn(env: *const CEnv, lp: *mut CProblem) -> CInt,
[INFO] [stdout]     |     ^^^^^^^^^^^^^ help: convert the identifier to snake case: `cpxgetnumcols`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXsetdblparam` should have a snake case name
[INFO] [stdout]   --> src/load.rs:63:5
[INFO] [stdout]    |
[INFO] [stdout] 63 |     CPXsetdblparam: fn(env: *mut CEnv, param: c_int, value: c_double) -> c_int,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `cpxsetdblparam`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXchgobj` should have a snake case name
[INFO] [stdout]    --> src/load.rs:120:5
[INFO] [stdout]     |
[INFO] [stdout] 120 |     CPXchgobj: fn(
[INFO] [stdout]     |     ^^^^^^^^^ help: convert the identifier to snake case: `cpxchgobj`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXchgqpcoef` should have a snake case name
[INFO] [stdout]    --> src/load.rs:128:5
[INFO] [stdout]     |
[INFO] [stdout] 128 |     CPXchgqpcoef:
[INFO] [stdout]     |     ^^^^^^^^^^^^ help: convert the identifier to snake case: `cpxchgqpcoef`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXgetintparam` should have a snake case name
[INFO] [stdout]   --> src/load.rs:64:5
[INFO] [stdout]    |
[INFO] [stdout] 64 |     CPXgetintparam: fn(env: *mut CEnv, param: c_int, value: *mut c_int) -> c_int,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `cpxgetintparam`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXgetqpcoef` should have a snake case name
[INFO] [stdout]    --> src/load.rs:132:5
[INFO] [stdout]     |
[INFO] [stdout] 132 |     CPXgetqpcoef: fn(
[INFO] [stdout]     |     ^^^^^^^^^^^^ help: convert the identifier to snake case: `cpxgetqpcoef`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXgetdblparam` should have a snake case name
[INFO] [stdout]   --> src/load.rs:65:5
[INFO] [stdout]    |
[INFO] [stdout] 65 |     CPXgetdblparam: fn(env: *mut CEnv, param: c_int, value: *mut c_double) -> c_int,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `cpxgetdblparam`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXchgprobtype` should have a snake case name
[INFO] [stdout]   --> src/load.rs:66:5
[INFO] [stdout]    |
[INFO] [stdout] 66 |     CPXchgprobtype: fn(env: *mut CEnv, lp: *mut CProblem, ptype: c_int) -> c_int,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `cpxchgprobtype`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXchgobjsen` should have a snake case name
[INFO] [stdout]    --> src/load.rs:140:5
[INFO] [stdout]     |
[INFO] [stdout] 140 |     CPXchgobjsen: fn(env: *mut CEnv, lp: *mut CProblem, maxormin: c_int) -> c_int,
[INFO] [stdout]     |     ^^^^^^^^^^^^ help: convert the identifier to snake case: `cpxchgobjsen`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXnewcols` should have a snake case name
[INFO] [stdout]   --> src/load.rs:68:5
[INFO] [stdout]    |
[INFO] [stdout] 68 |     CPXnewcols: fn(
[INFO] [stdout]    |     ^^^^^^^^^^ help: convert the identifier to snake case: `cpxnewcols`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXlpopt` should have a snake case name
[INFO] [stdout]    --> src/load.rs:142:5
[INFO] [stdout]     |
[INFO] [stdout] 142 |     CPXlpopt: fn(env: *mut CEnv, lp: *mut CProblem) -> c_int,
[INFO] [stdout]     |     ^^^^^^^^ help: convert the identifier to snake case: `cpxlpopt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXaddrows` should have a snake case name
[INFO] [stdout]   --> src/load.rs:78:5
[INFO] [stdout]    |
[INFO] [stdout] 78 |     CPXaddrows: fn(
[INFO] [stdout]    |     ^^^^^^^^^^ help: convert the identifier to snake case: `cpxaddrows`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXmipopt` should have a snake case name
[INFO] [stdout]    --> src/load.rs:143:5
[INFO] [stdout]     |
[INFO] [stdout] 143 |     CPXmipopt: fn(env: *mut CEnv, lp: *mut CProblem) -> c_int,
[INFO] [stdout]     |     ^^^^^^^^^ help: convert the identifier to snake case: `cpxmipopt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXaddcols` should have a snake case name
[INFO] [stdout]   --> src/load.rs:92:5
[INFO] [stdout]    |
[INFO] [stdout] 92 |     CPXaddcols: fn(
[INFO] [stdout]    |     ^^^^^^^^^^ help: convert the identifier to snake case: `cpxaddcols`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXgetstat` should have a snake case name
[INFO] [stdout]    --> src/load.rs:145:5
[INFO] [stdout]     |
[INFO] [stdout] 145 |     CPXgetstat: fn(env: *mut CEnv, lp: *mut CProblem) -> c_int,
[INFO] [stdout]     |     ^^^^^^^^^^ help: convert the identifier to snake case: `cpxgetstat`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXaddlazyconstraints` should have a snake case name
[INFO] [stdout]    --> src/load.rs:105:5
[INFO] [stdout]     |
[INFO] [stdout] 105 |     CPXaddlazyconstraints: fn(
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `cpxaddlazyconstraints`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXgetnumcols` should have a snake case name
[INFO] [stdout]    --> src/load.rs:118:5
[INFO] [stdout]     |
[INFO] [stdout] 118 |     CPXgetnumcols: fn(env: *const CEnv, lp: *mut CProblem) -> CInt,
[INFO] [stdout]     |     ^^^^^^^^^^^^^ help: convert the identifier to snake case: `cpxgetnumcols`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXgetobjval` should have a snake case name
[INFO] [stdout]    --> src/load.rs:146:5
[INFO] [stdout]     |
[INFO] [stdout] 146 |     CPXgetobjval: fn(env: *mut CEnv, lp: *mut CProblem, objval: *mut c_double) -> c_int,
[INFO] [stdout]     |     ^^^^^^^^^^^^ help: convert the identifier to snake case: `cpxgetobjval`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXchgobj` should have a snake case name
[INFO] [stdout]    --> src/load.rs:120:5
[INFO] [stdout]     |
[INFO] [stdout] 120 |     CPXchgobj: fn(
[INFO] [stdout]     |     ^^^^^^^^^ help: convert the identifier to snake case: `cpxchgobj`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXgetx` should have a snake case name
[INFO] [stdout]    --> src/load.rs:147:5
[INFO] [stdout]     |
[INFO] [stdout] 147 |     CPXgetx:
[INFO] [stdout]     |     ^^^^^^^ help: convert the identifier to snake case: `cpxgetx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXsolution` should have a snake case name
[INFO] [stdout]    --> src/load.rs:149:5
[INFO] [stdout]     |
[INFO] [stdout] 149 |     CPXsolution: fn(
[INFO] [stdout]     |     ^^^^^^^^^^^ help: convert the identifier to snake case: `cpxsolution`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXchgqpcoef` should have a snake case name
[INFO] [stdout]    --> src/load.rs:128:5
[INFO] [stdout]     |
[INFO] [stdout] 128 |     CPXchgqpcoef:
[INFO] [stdout]     |     ^^^^^^^^^^^^ help: convert the identifier to snake case: `cpxchgqpcoef`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXgetqpcoef` should have a snake case name
[INFO] [stdout]    --> src/load.rs:132:5
[INFO] [stdout]     |
[INFO] [stdout] 132 |     CPXgetqpcoef: fn(
[INFO] [stdout]     |     ^^^^^^^^^^^^ help: convert the identifier to snake case: `cpxgetqpcoef`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXaddmipstarts` should have a snake case name
[INFO] [stdout]    --> src/load.rs:160:5
[INFO] [stdout]     |
[INFO] [stdout] 160 |     CPXaddmipstarts: fn(
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `cpxaddmipstarts`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXchgobjsen` should have a snake case name
[INFO] [stdout]    --> src/load.rs:140:5
[INFO] [stdout]     |
[INFO] [stdout] 140 |     CPXchgobjsen: fn(env: *mut CEnv, lp: *mut CProblem, maxormin: c_int) -> c_int,
[INFO] [stdout]     |     ^^^^^^^^^^^^ help: convert the identifier to snake case: `cpxchgobjsen`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXgeterrorstring` should have a snake case name
[INFO] [stdout]    --> src/load.rs:172:5
[INFO] [stdout]     |
[INFO] [stdout] 172 |     CPXgeterrorstring: fn(env: *mut CEnv, errcode: c_int, buff: *mut c_char) -> *mut c_char,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `cpxgeterrorstring`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXlpopt` should have a snake case name
[INFO] [stdout]    --> src/load.rs:142:5
[INFO] [stdout]     |
[INFO] [stdout] 142 |     CPXlpopt: fn(env: *mut CEnv, lp: *mut CProblem) -> c_int,
[INFO] [stdout]     |     ^^^^^^^^ help: convert the identifier to snake case: `cpxlpopt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXwriteprob` should have a snake case name
[INFO] [stdout]    --> src/load.rs:173:5
[INFO] [stdout]     |
[INFO] [stdout] 173 |     CPXwriteprob:
[INFO] [stdout]     |     ^^^^^^^^^^^^ help: convert the identifier to snake case: `cpxwriteprob`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXmipopt` should have a snake case name
[INFO] [stdout]    --> src/load.rs:143:5
[INFO] [stdout]     |
[INFO] [stdout] 143 |     CPXmipopt: fn(env: *mut CEnv, lp: *mut CProblem) -> c_int,
[INFO] [stdout]     |     ^^^^^^^^^ help: convert the identifier to snake case: `cpxmipopt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXcloseCPLEX` should have a snake case name
[INFO] [stdout]    --> src/load.rs:176:5
[INFO] [stdout]     |
[INFO] [stdout] 176 |     CPXcloseCPLEX: fn(env: *const *mut CEnv) -> c_int,
[INFO] [stdout]     |     ^^^^^^^^^^^^^ help: convert the identifier to snake case: `cpxclose_cplex`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXgetstat` should have a snake case name
[INFO] [stdout]    --> src/load.rs:145:5
[INFO] [stdout]     |
[INFO] [stdout] 145 |     CPXgetstat: fn(env: *mut CEnv, lp: *mut CProblem) -> c_int,
[INFO] [stdout]     |     ^^^^^^^^^^ help: convert the identifier to snake case: `cpxgetstat`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXfreeprob` should have a snake case name
[INFO] [stdout]    --> src/load.rs:177:5
[INFO] [stdout]     |
[INFO] [stdout] 177 |     CPXfreeprob: fn(env: *mut CEnv, lp: *const *mut CProblem) -> c_int,
[INFO] [stdout]     |     ^^^^^^^^^^^ help: convert the identifier to snake case: `cpxfreeprob`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXqpopt` should have a snake case name
[INFO] [stdout]    --> src/load.rs:179:5
[INFO] [stdout]     |
[INFO] [stdout] 179 |     CPXqpopt: fn(env: *mut CEnv, lp: *mut CProblem) -> c_int,
[INFO] [stdout]     |     ^^^^^^^^ help: convert the identifier to snake case: `cpxqpopt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXgetobjval` should have a snake case name
[INFO] [stdout]    --> src/load.rs:146:5
[INFO] [stdout]     |
[INFO] [stdout] 146 |     CPXgetobjval: fn(env: *mut CEnv, lp: *mut CProblem, objval: *mut c_double) -> c_int,
[INFO] [stdout]     |     ^^^^^^^^^^^^ help: convert the identifier to snake case: `cpxgetobjval`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/load.rs:693:50
[INFO] [stdout]     |
[INFO] [stdout] 693 |             CString::new(name.as_str()).unwrap().as_ptr(),
[INFO] [stdout]     |             ------------------------------------ ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |             |
[INFO] [stdout]     |             this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout]     = note: `#[warn(temporary_cstring_as_ptr)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXgetx` should have a snake case name
[INFO] [stdout]    --> src/load.rs:147:5
[INFO] [stdout]     |
[INFO] [stdout] 147 |     CPXgetx:
[INFO] [stdout]     |     ^^^^^^^ help: convert the identifier to snake case: `cpxgetx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXsolution` should have a snake case name
[INFO] [stdout]    --> src/load.rs:149:5
[INFO] [stdout]     |
[INFO] [stdout] 149 |     CPXsolution: fn(
[INFO] [stdout]     |     ^^^^^^^^^^^ help: convert the identifier to snake case: `cpxsolution`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/load.rs:727:55
[INFO] [stdout]     |
[INFO] [stdout] 727 |             &CString::new(var.name.as_str()).unwrap().as_ptr(),
[INFO] [stdout]     |              ---------------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |              |
[INFO] [stdout]     |              this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXaddmipstarts` should have a snake case name
[INFO] [stdout]    --> src/load.rs:160:5
[INFO] [stdout]     |
[INFO] [stdout] 160 |     CPXaddmipstarts: fn(
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `cpxaddmipstarts`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/load.rs:772:55
[INFO] [stdout]     |
[INFO] [stdout] 772 |             &CString::new(con.name.as_str()).unwrap().as_ptr(),
[INFO] [stdout]     |              ---------------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |              |
[INFO] [stdout]     |              this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXgeterrorstring` should have a snake case name
[INFO] [stdout]    --> src/load.rs:172:5
[INFO] [stdout]     |
[INFO] [stdout] 172 |     CPXgeterrorstring: fn(env: *mut CEnv, errcode: c_int, buff: *mut c_char) -> *mut c_char,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `cpxgeterrorstring`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXwriteprob` should have a snake case name
[INFO] [stdout]    --> src/load.rs:173:5
[INFO] [stdout]     |
[INFO] [stdout] 173 |     CPXwriteprob:
[INFO] [stdout]     |     ^^^^^^^^^^^^ help: convert the identifier to snake case: `cpxwriteprob`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/load.rs:815:55
[INFO] [stdout]     |
[INFO] [stdout] 815 |             &CString::new(con.name.as_str()).unwrap().as_ptr(),
[INFO] [stdout]     |              ---------------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |              |
[INFO] [stdout]     |              this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXcloseCPLEX` should have a snake case name
[INFO] [stdout]    --> src/load.rs:176:5
[INFO] [stdout]     |
[INFO] [stdout] 176 |     CPXcloseCPLEX: fn(env: *const *mut CEnv) -> c_int,
[INFO] [stdout]     |     ^^^^^^^^^^^^^ help: convert the identifier to snake case: `cpxclose_cplex`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/load.rs:937:57
[INFO] [stdout]     |
[INFO] [stdout] 937 |             CString::new(name.into().as_str()).unwrap().as_ptr(),
[INFO] [stdout]     |             ------------------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |             |
[INFO] [stdout]     |             this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXfreeprob` should have a snake case name
[INFO] [stdout]    --> src/load.rs:177:5
[INFO] [stdout]     |
[INFO] [stdout] 177 |     CPXfreeprob: fn(env: *mut CEnv, lp: *const *mut CProblem) -> c_int,
[INFO] [stdout]     |     ^^^^^^^^^^^ help: convert the identifier to snake case: `cpxfreeprob`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `CPXqpopt` should have a snake case name
[INFO] [stdout]    --> src/load.rs:179:5
[INFO] [stdout]     |
[INFO] [stdout] 179 |     CPXqpopt: fn(env: *mut CEnv, lp: *mut CProblem) -> c_int,
[INFO] [stdout]     |     ^^^^^^^^ help: convert the identifier to snake case: `cpxqpopt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]     --> src/load.rs:1005:51
[INFO] [stdout]      |
[INFO] [stdout] 1005 |                 CString::new("lpex1.lp").unwrap().as_ptr(),
[INFO] [stdout]      |                 --------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]      |                 |
[INFO] [stdout]      |                 this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]      |
[INFO] [stdout]      = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]      = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/load.rs:693:50
[INFO] [stdout]     |
[INFO] [stdout] 693 |             CString::new(name.as_str()).unwrap().as_ptr(),
[INFO] [stdout]     |             ------------------------------------ ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |             |
[INFO] [stdout]     |             this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout]     = note: `#[warn(temporary_cstring_as_ptr)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]     --> src/load.rs:1021:51
[INFO] [stdout]      |
[INFO] [stdout] 1021 |                 CString::new("lpex1.lp").unwrap().as_ptr(),
[INFO] [stdout]      |                 --------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]      |                 |
[INFO] [stdout]      |                 this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]      |
[INFO] [stdout]      = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]      = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/load.rs:727:55
[INFO] [stdout]     |
[INFO] [stdout] 727 |             &CString::new(var.name.as_str()).unwrap().as_ptr(),
[INFO] [stdout]     |              ---------------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |              |
[INFO] [stdout]     |              this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/load.rs:772:55
[INFO] [stdout]     |
[INFO] [stdout] 772 |             &CString::new(con.name.as_str()).unwrap().as_ptr(),
[INFO] [stdout]     |              ---------------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |              |
[INFO] [stdout]     |              this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/load.rs:815:55
[INFO] [stdout]     |
[INFO] [stdout] 815 |             &CString::new(con.name.as_str()).unwrap().as_ptr(),
[INFO] [stdout]     |              ---------------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |              |
[INFO] [stdout]     |              this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/load.rs:937:57
[INFO] [stdout]     |
[INFO] [stdout] 937 |             CString::new(name.into().as_str()).unwrap().as_ptr(),
[INFO] [stdout]     |             ------------------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |             |
[INFO] [stdout]     |             this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]     --> src/load.rs:1005:51
[INFO] [stdout]      |
[INFO] [stdout] 1005 |                 CString::new("lpex1.lp").unwrap().as_ptr(),
[INFO] [stdout]      |                 --------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]      |                 |
[INFO] [stdout]      |                 this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]      |
[INFO] [stdout]      = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]      = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]     --> src/load.rs:1021:51
[INFO] [stdout]      |
[INFO] [stdout] 1021 |                 CString::new("lpex1.lp").unwrap().as_ptr(),
[INFO] [stdout]      |                 --------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]      |                 |
[INFO] [stdout]      |                 this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]      |
[INFO] [stdout]      = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]      = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 40 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 40 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished dev [unoptimized + debuginfo] target(s) in 2.51s
[INFO] running `Command { std: "docker" "inspect" "cd893d4c4bb18595026a8181b90f24f9917346da75b3f9e2d3ddc68f1236d28a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "cd893d4c4bb18595026a8181b90f24f9917346da75b3f9e2d3ddc68f1236d28a", kill_on_drop: false }`
[INFO] [stdout] cd893d4c4bb18595026a8181b90f24f9917346da75b3f9e2d3ddc68f1236d28a
